package com.etc.dao;

import com.etc.entity.FlashOrder;
import com.etc.entity.po.FlashOneLevelStatistics;
import com.etc.entity.po.FlashOrderMessage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 文件名:com.etc.entity.FlashOrderDao
 * 描述：秒杀订单持久层接口
 * 作者:吴仕泉
 * 时间:2019/5/23 19:14
 */
@Repository
@Mapper
public interface FlashOrderDao {
    //根据秒杀订单ID删除该订单记录
    int deleteByPrimaryKey(Integer flashorderid);

    //添加一条秒杀订单记录
    int insert(FlashOrder record);

    //添加一条秒杀订单记录（参数可变）
    int insertSelective(FlashOrder record);

    //根据秒杀订单ID查询秒杀订单信息
    FlashOrder selectByPrimaryKey(Integer flashorderid);

    //根据秒杀订单ID修改记录信息
    int updateByPrimaryKeySelective(FlashOrder record);

    //根据秒杀订单ID修改记录信息（参数可变）
    int updateByPrimaryKey(FlashOrder record);

    //添加一条秒杀订单记录并返回秒杀ID（参数可变）
    int insertSelectiveRetrunId(FlashOrder record);

    //根据秒杀订单号，查询该订单的详细信息
    FlashOrderMessage getOrderMessageByOrderNum(String order);

    //根据用户ID查询用户的所有秒杀订单
    List<FlashOrderMessage> listOrderMessageByUserId(Integer uid);

    //统计本周各大类的收入情况
    List<FlashOneLevelStatistics> listStatisticsOneLevelData();

    // 查询所有秒杀订单以分页的形式进行展示
    List<FlashOrderMessage> listAllOrderByPage(@Param("star") Integer star ,@Param("pageSize")Integer pageSize);

    //统计有多少条记录
    Integer getCount();

    //根据订单编号查询订单信息
    FlashOrder getFlashOrderByOrderNum(String orderNum);

   //秒杀订单总数量
    int selectFlashOrder();
    //这周的秒杀数量
    int selectDay();
}